#include<bits/stdc++.h>
using namespace std;
char c[8]={'0','y','i','z','h','o','n','g'};
int dx[8]={0,0,-1,1,1,-1,1,-1};
int dy[8]={-1,1,0,0,1,-1,-1,1};
//struct pos
//{
//	int x,y,c;
//	pos(int xx,int yy,int cc)
//	{
//		x=xx,y=yy,c=cc;
//	}
//};
int n;
vector<vector<char>> v;
vector<vector<bool>> f;
bool dfs(int x,int y,int m,int n,int z)
{
	if(z>=7)
	{
		f[x][y]=1;
		return 1;
	}
	if(v[x+m][y+n]==c[z+1])
	{
		if(dfs(x+m,y+n,m,n,z+1))
		{
			f[x][y]=1;
			return 1;
		}
	}
	return 0;
}
int main()
{

	cin>>n;
	//queue<pos> q;
	v=vector<vector<char>> (105,vector<char>(105));
	f=vector<vector<bool>> (n+1,vector<bool>(n+1));
	for(int i=1;i<=n;i++)
		for(int j=1;j<=n;j++)
		{
			cin>>v[i][j];
		}
	for(int i=1;i<=n;i++)
		for(int j=1;j<=n;j++)
		{
			if(v[i][j]==c[1])
			{
//				q.push(pos(i,j,1));
//				while(!q.empty())
//				{
//					pos tmp=q.front();
//					q.pop();
//					int x=tmp.x,y=tmp.y,cnt=tmp.c;
				for(int k=0;k<8;k++)
				{
					if(v[i+dx[k]][j+dy[k]]=='i')
					{
						if(dfs(i+dx[k],j+dy[k],dx[k],dy[k],2))
							f[i][j]=1;
					}
				}
//				}
			}
		}
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=n;j++)
		{
			if(f[i][j])cout<<v[i][j];
			else cout<<"*";
		}
		cout<<endl;
	}
	return 0;
}
